module HMS_eclock (clk_12M,rst,CS2,qLEDaddr
);
	input clk_12M;     //秒频
	wire clk_disp;//显示频率300
	wire clk  ;   //1Hz
	input rst;		//高电平复位

	
	output [7:0] qLEDaddr;
	output [7:0] CS2;//低电平有效


	wire [2:0] CS;
	wire [3:0] h2;
	wire [3:0] h1;
	wire [3:0] m2;
	wire [3:0] m1;
	wire [3:0] s2;
	wire [3:0] s1;
	wire [3:0] q;//BCD码
	
frequency f1(            //默认输出频率为1Hz
					.clk(clk_12M),
					.rst(rst),
					.output_clk(clk)
);	
    
frequency  f2(           //默认输出频率为300Hz
					.clk(clk_12M),
					.rst(rst),
					.output_clk(clk_disp)
);	
 defparam  f2.clk_freq =1200 ; 		 //输入频率
 defparam  f2.OUT_Freq =300;         //目标频率
 defparam  f2.N =16 ;                //计数器位数	
//时分秒计数模块	
	hmscounter hms (
					.clk(clk),
					.rst(rst),
					.h2(h2),
					.h1(h1),
					.m2(m2),
					.m1(m1),
					.s2(s2),
					.s1(s1));
					
	
	
//从时分秒的低位到高位动态显示	
	dyndisp dyndisp1 (
					.clk_disp(clk_disp),
					.rst(rst),
					.h2(h2),
					.h1(h1),
					.m2(m2),
					.m1(m1),
					.s2(s2),
					.s1(s1),
					.qhms(q),    //动态记录当前时分秒的结果
					.qnum(CS)); //动态记录当前时分秒的显示的位置，例如0表示秒的低位，1表示秒的高位，3表示的分的低位

//转换时分秒的BCD码显示	
	disp_decoder BCDshow (            
					.hmsdata(q),     //上一个模块的当前时刻时分秒作为输入
					.qout(qLEDaddr)); 
	decoder_38  test38 (
					.A(CS),
					.Y(CS2));
			 		     
endmodule